package cn.edu.nuc.bre.service.interfaces;

import java.util.List;
import java.util.Map;

import org.activiti.engine.identity.Group;
import org.activiti.engine.identity.User;

/**
 * @author Mine
 * @since 2016年11月10日_下午1:02:56
 */
public interface GroupService {
	/**
	 * 新增一个用户组
	 * 
	 * @param one
	 * @return 增加结果
	 */
	public boolean add(Group one);

	/**
	 * 修改指定id用户组信息
	 * 
	 * @param annoid
	 * @return 修改结果
	 */
	public boolean edit(Group one);

	/**
	 * 删除指定id用户组
	 * 
	 * @param 角色id
	 * @return 删除结果
	 */
	public boolean delete(String gid);

	/**
	 * 查看指定gid用户组下的用户
	 * 
	 * @param 角色id
	 * @return 实体
	 */
	public List<User> findUsersById(String gid);

	/**
	 * 查看指定gid用户组
	 * 
	 * @param 角色id
	 * @return 实体
	 */
	public Group findById(String gid);
	/**
	 * 查看指定gname用户组
	 * 
	 * @param 角色id
	 * @return 实体
	 */
	public Group findByName(String gname);

	/**
	 * 查询指定类型的用户组
	 * 
	 * @param 用户组
	 *            类型数组 。。。
	 * @return 实体
	 */
	public List<Group> findByTypes(String... types);

	/**
	 * 查询指定几个类型的用户组并按Map返回
	 * 
	 * @param 用户组
	 *            类型数组 。。。
	 * @return 实体
	 */
	public Map<String, List<Group>> findGroupsMapByTypes(String... types);

}
